﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using QuanLiSinhVien_v01.DTO;

namespace QuanLiSinhVien_v01.DAO
{
    class NganhDao:DataProvider
    {
        public NganhDto Nganh { get; set; }

        protected override Object GetDataFromDataRow(DataTable dt, int rowIndex)
        {
            NganhDto NganhDto = new NganhDto();
            NganhDto.MaNganh = dt.Rows[rowIndex]["MaNganh"].ToString();
            NganhDto.TenNganh = dt.Rows[rowIndex]["TenNganh"].ToString();
            NganhDto.GhiChu = dt.Rows[rowIndex]["GhiChu"].ToString();

            return NganhDto;
        }

        public NganhDto[] GetList()
        {
            string strCommand = " Select * from Nganh ";
            DataTable dt = ExcuteQuery(strCommand);
            int n = dt.Rows.Count;
            NganhDto[] kq = new NganhDto[n];
            for (int i = 0; i < n; i++)
            {
                kq[i] = (NganhDto)GetDataFromDataRow(dt, i);
            }
            return kq;
        }

        public void Insert()
        {
            string strCommand =
                "insert into Nganh (MaNganh, TenNganh, GhiChu) " +
                "values (N'" + Nganh.MaNganh + "', N'" +
                              Nganh.TenNganh + "', N'" +
                              Nganh.GhiChu + "'" +
                        ")";
            try
            {
                ExcuteNonQuery(strCommand);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public bool CheckExist(string MaNganh)
        {
            string strCommand = " Select * from Nganh " +
                                "where MaNganh = N'" + MaNganh + "'";
            DataTable dt = ExcuteQuery(strCommand);
            if (dt.Rows.Count != 0)
                return true;
            return false;
        }
        public void Update()
        {
            string strCommand =
                "update Nganh set " +
                "TenNganh = N'" + Nganh.TenNganh + "' , " +
                "GhiChu = N'" + Nganh.GhiChu + "' " +
                "where MaNganh = '" + Nganh.MaNganh + "' ";
            try
            {
                ExcuteNonQuery(strCommand);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Delete()
        {
            string strCommand =
                "DELETE FROM Nganh " +
                "WHERE  MaNganh = '" + Nganh.MaNganh + "'";
            try
            {
                ExcuteNonQuery(strCommand);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public NganhDto[] Search(string keywork)
        {
            string strCommand = " Select * from Nganh " +
                                "where MaNganh like '%" + keywork + "%' " +
                                " or TenNganh like '%" + keywork + "%' " +
                                " or GhiChu like '%" + keywork + "%' ";
            DataTable dt = ExcuteQuery(strCommand);
            int n = dt.Rows.Count;
            NganhDto[] kq = new NganhDto[n];
            for (int i = 0; i < n; i++)
            {
                kq[i] = (NganhDto)GetDataFromDataRow(dt, i);
            }
            return kq;
        }
    }
}
